<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Ordemservico extends CI_Controller {
    	
    private $PRIORIDADE;
	private $STATUS;
    
    function Ordemservico (){
        parent::__construct();
        
        if(!$this->session->userdata('logged')){
        	redirect('login');
        }
		
		$this->load->model('client_model', 'client');
		$this->load->model('product_model', 'product');
 
        $this->PRIORIDADE = array(
            'b' => 'Baixa',
            'n' => 'Normal',
            'a' => 'Alta'
        );
		
		$this->STATUS = array(
            'a' => 'Em Andamento',
            's' => 'Solucionada',
            'f' => 'Fechada'
        );
    }
	
	public function index (){
	    // Load open transports
	    $this->load->model('orderservice_model');
				
		$data = array(
			'os' => $this->orderservice_model->get(false),
			'page_title'  => "Ordens de Serviço",
			'prioridade_list' => $this->PRIORIDADE,
	        'status_list' => $this->STATUS
		);

	    // Load View
	    $this->template->show('ordemservico/list', $data);
	}
	
	public function add (){
	    $this->load->model('orderservice_model');
		
		$options = array();
		$clients = $this->client->get();
		foreach($clients as $value){
			$options[$value['id']] = $value['nome'];
		}
		
		$products = array();
		$query = $this->product->get();
		foreach($query as $value){
			$products[$value['id']] = $value['nome'];
		}
        
        $data = array(
			'page_title'  => "Nova OS",
			'id_cliente' => '',
			'cliente_list' => $options,
			'id_produto' => '',
			'produto_list' => $products,
			'prioridade' => 'n',
			'prioridade_list' => $this->PRIORIDADE,
			'status' => '',
	        'status_list' => $this->STATUS,
			'dt_inicio' => '',
			'entrega' => '',
			'cadastradoPor' => '',
			'defeito_reclamado' => '',
			'solucao' => '',
			'observacao' => ''
		);
        
        $this->template->show('ordemservico/add', $data);
	}
	 
	public function edit ($id){
	    $this->load->model('orderservice_model');
		
		$options = array();
		$clients = $this->client->get();
		foreach($clients as $value){
			$options[$value['id']] = $value['nome'];
		}
		
		$products = array();
		$query = $this->product->get();
		foreach($query as $value){
			$products[$value['id']] = $value['nome'];
		}
		
		$data = $this->orderservice_model->get($id);
		$data['page_title'] = 'Editar OS # '.$id;
		$data['prioridade_list'] = $this->PRIORIDADE;
		$data['status_list'] = $this->STATUS;
		$data['cliente_list'] = $options;
		$data['produto_list'] = $products; 
		
		$this->template->show('ordemservico/add', $data);
	}
	
	public function remove ($id){
	    $this->load->model('orderservice_model');
	    $this->orderservice_model->delete($id);
	 
	    redirect('ordemservico');
	}
	
	public function save(){
        $this->load->model('orderservice_model');
		
		$sql_data = array(
        	'id_cliente'		=> $this->input->post('id_cliente'),
        	'id_produto'		=> $this->input->post('id_produto'),
        	'prioridade'		=> $this->input->post('prioridade'),
            'status'			=> $this->input->post('status'),
            'dt_inicio'			=> date('Y-m-d'),
            'entrega'			=> $this->funcoes->converteData($this->input->post('entrega')),
            'cadastradoPor'		=> $this->session->userdata('user'),
            'defeito_reclamado'	=> $this->input->post('defeito_reclamado'),
            'solucao'			=> $this->input->post('solucao'),
            'observacao'		=> $this->input->post('observacao'),
        );
        
        $os_id = $this->input->post('id');
        
        if ($os_id){
            $this->orderservice_model->update($os_id,$sql_data);
        } else {
            $os_id = $this->orderservice_model->create($sql_data);
		}
            
        redirect('ordemServico');
    }
}